drools规则引擎与kie

您所在的位置:网站首页 drools 可视化 drools规则引擎与kie

drools规则引擎与kie

2023-07-27 20:39| 来源: 网络整理| 查看: 265

 

 

最近研究了一下规则引擎drools。

这篇博客带你搭建并运行一个可在线编辑,在线打包,远程执行的规则引擎(drools)

本篇博客同时参考https://blog.csdn.net/chinrui/article/details/79018351 博客内容

1、搭建Workbench (首先保证主机联网,有docker环境)

  docker run -p 8080:8080 -p 8001:8001 -d --name drools-wb jboss/drools-workbench-showcase:latest

  容器启动完之后就可以访问如下链接(可能docker镜像下载有点慢。可以切换阿里云镜像仓库)

  http://IP:8080/business-central/kie-wb.jsp?locale=zh_CN

界面如下:

  用户名:admin  密码:admin

  登录进去之后

  点击创建工程

 

 

 

 

   点击创建Add Asset

 

 

 

  创建完对象点击保存

 

  保存之后回到工程界面

  继续创建rule,向导性规则

 

 

 

 

package com.myspace.mytest1; rule "myrule1" dialect "java" when $info : mytestmodel1( sex == 0 ) then $info.setName( "李雷" ); end

 

创建测试场景

 

 编辑如下测试规则

然后返回点击build

然后点击

2、创建 kie-server

  docker run -p 8180:8080 -d --name kie-server --link drools-wb:kie_wb jboss/kie-server-showcase:latest

  运行如上docker容器

  

  容器运行起来之后

  访问如下链接http://IP:8180/kie-server/services/rest/server/

  

  在访问链接 http://IP:8180/kie-server/services/rest/server/containers

 

 

 

 

  这里发现已经有了我们刚才创建的kie-server服务列表,这是我们需要创建一个运行容器,返回我们的mytest1rule

 

 

 

  发布成功之后

  然后在访问链接http://IP:8180/kie-server/services/rest/server/containers

接下来上代码开发我们的测试程序

maven项目引用依赖

UTF-8 1.8 1.8 7.18.0.Final org.drools drools-core ${drools.version} org.drools drools-compiler ${drools.version} org.drools drools-decisiontables ${drools.version} org.drools drools-templates ${drools.version} org.kie kie-api ${drools.version} org.kie.server kie-server-client ${drools.version}

实体类

package com.myspace.mytest1; /** * This class was automatically generated by the data modeler tool. */ public class mytestmodel1 implements java.io.Serializable { static final long serialVersionUID = 1L; private java.lang.Integer id; private java.lang.String name; private java.lang.Integer sex; public mytestmodel1() { } public java.lang.Integer getId() { return this.id; } public void setId(java.lang.Integer id) { this.id = id; } public java.lang.String getName() { return this.name; } public void setName(java.lang.String name) { this.name = name; } public java.lang.Integer getSex() { return this.sex; } public void setSex(java.lang.Integer sex) { this.sex = sex; } public mytestmodel1(java.lang.Integer id, java.lang.String name, java.lang.Integer sex) { this.id = id; this.name = name; this.sex = sex; } @Override public String toString() { return "mytestmodel1 [id=" + id + ", name=" + name + ", sex=" + sex + "]"; } }

控制台执行代码

package com.myspace.mytest1; import java.io.IOException; import java.util.LinkedList; import java.util.List; import org.kie.api.KieServices; import org.kie.api.command.Command; import org.kie.api.command.KieCommands; import org.kie.api.runtime.ExecutionResults; import org.kie.server.api.marshalling.MarshallingFormat; import org.kie.server.api.model.ServiceResponse; import org.kie.server.client.KieServicesClient; import org.kie.server.client.KieServicesConfiguration; import org.kie.server.client.KieServicesFactory; import org.kie.server.client.RuleServicesClient; public class droolstest { public static final String SERVER_URL = "http://ip:8180/kie-server/services/rest/server"; public static final String PASSWORD = "kieserver1!"; public static final String USERNAME = "kieserver"; public static final String KIE_CONTAINER_ID = "mytest1_1.0.0-SNAPSHOT"; public static final String KIE_SESSION_ID = "mytest1"; public static void main(String[] args) throws IOException { // KisService 配置信息设置 KieServicesConfiguration kieServicesConfiguration = KieServicesFactory.newRestConfiguration(SERVER_URL, USERNAME, PASSWORD, 10000L); kieServicesConfiguration.setMarshallingFormat(MarshallingFormat.JSON); // 创建规则服务客户端 KieServicesClient kieServicesClient = KieServicesFactory.newKieServicesClient(kieServicesConfiguration); RuleServicesClient ruleServicesClient = kieServicesClient.getServicesClient(RuleServicesClient.class); // 规则输入条件 mytestmodel1 mytest = new mytestmodel1(); mytest.setSex(1); // 命令定义,包含插入数据,执行规则 KieCommands kieCommands = KieServices.Factory.get().getCommands(); List


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3